The present disclosure relates generally to interoperability between entities with different messaging service versions, and more particularly to messaging service interoperability methods that dynamically switch messaging service versions.
Messaging services such as MMS (Multimedia Messaging Service) have become a popular application in mobile devices such as mobile phones. As messaging service expands, the OMA (Open Mobile Alliance) continues update of specifications for messaging service. The protocol version is represented by a version number which is divided into a major version number and a minor version number. Currently, OMA has already released MMS versions 1.0, 1.1, 1.2, 1.3, and 2.0. OMA defines rules to provide interoperability between MMS entities, such as MMS servers (proxy-relays) and MMS clients, with different MMS versions. MMS versions with only minor version number differences provide full backward compatibility. For example, a MMS server with MMS version 1.1 accepts a PDU (Protocol Data Unit) of MMS version 1.0 transmitted from a MMS client. MMS versions with major version number differences do not provide full backward compatibility. For example, a MMS server with MMS version 2.0 rejects a PDU of MMS version 1.0 transmitted from a MMS client. Additionally, all MMS versions support the MMS 1.0 M-Send.conf PDU and MMS 1.0 M-NotifyResp.ind PDU, in which the M-Send.conf PDU and M-NotifyResp.ind PDU are two types of PDUs under MMS version 1.0.
If a MMS server (proxy-relay) and a MMS client implement MMS versions with the same major version number and different minor version numbers, the MMS server or client receiving a PDU determines whether the message type of the PDU is supportable. If the PDU is not supported, the MMS server responds a M-Send.conf PDU containing a response status-value “Error-unsupported-message” to the client. If the PDU is not supported, the MMS client responds a M-NotifyResp.ind PDU containing a status-value “Unrecognized” to the server. If the MMS server supports the PDU, it ignores all unrecognized fields and recognized fields with unrecognized values, in which an unrecognized value is not defined in a corresponding specification of a field. If the MMS client supports the PDU, it ignores all unrecognized fields and recognized fields with unrecognized values.
If a MMS server and a MMS client implement MMS versions with different major version numbers, the MMS client receiving a PDU from the server responds a M-NotifyResp.ind PDU containing a status-value “Unrecognized” to the server. In OMA specification, the MMS server can selectively support the MMS with different major version numbers. However, the MMS server receiving a PDU from the client always responds a M-Send.conf PDU containing a response status-value “Error-unsupported-message” to the client if the MMS server and the MMS client implement MMS versions with different major version numbers.
According to the interoperability rules defined by OMA, for example, when a MMS version 1.0 server receives one MMS version 1.1 message from a MMS client, it has to parse every recognized header fields rather than returning a M-Send.conf PDU containing a response status-value “Error-unsupported-message”. However, some MMS servers immediately return a M-Send.conf PDU containing a response status-value “Error-unsupported-message” upon receiving a PDU with the same major version number and different minor version numbers. To be compatible with these MMS servers, MMS clients have to downgrade their MMS minor version. For example, a MMS version must be downgraded from 1.1 to 1.0, losing features of the newer MMS version even though some MMS servers are compatible therewith.